package cn.arnold.sort;

import java.util.Arrays;

public class SelectSort {

    public static void main(String[] args) {
        int[] array = {20, -2, 6, 30, -5, 1};
        sort(array);
        System.out.println(Arrays.toString(array));

    }

    public static void sort(int[] array) {
        // 1. 共进行array.length-1 轮排序
        for (int i = 0; i < array.length - 1; i++) {
            // 假定最小值为待排序数组的第一个值
            int minIndex = i;     // 最小值的索引
            // 2. 每一轮比较 array.length-1-i次
            for (int j = i + 1; j < array.length; j++) {
                // 找到最小的数对应的索引
                if (array[minIndex] > array[j]) {
                    minIndex = j;
                }
            }
            // 交换位置:array[i]<--->array[minIndex]
            if (minIndex != i) {
                int temp = array[i];
                array[i] = array[minIndex];
                array[minIndex] = temp;
            }
            System.out.println("第" + (i + 1) + "趟后：" + Arrays.toString(array));
        }
    }
}
